ref class Account;
ref class MarketData;
ref class Bars;
ref class Orders;

ref class StrategyAbstract;
ref class Symbol
{
public:
	String ^Name() { return this->name; }
	Account ^Account_() { return this->account; }
	MarketData ^MarketData_() { return this->marketData; }
	Bars ^Bars_() { return this->bars; }
	Orders ^Orders_() { return this->orders; }
	List<StrategyAbstract^> ^Strategy_() { return this->strategies; }

	Symbol(String ^name, Account ^account);

protected:
	String ^name;
	Account ^account;
	MarketData ^marketData;
	Bars ^bars;
	Orders ^orders;
	List<StrategyAbstract^> ^strategies;
};